package com.v1.video.wxapi;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Toast;

import com.tencent.mm.sdk.constants.ConstantsAPI;
import com.tencent.mm.sdk.modelbase.BaseReq;
import com.tencent.mm.sdk.modelbase.BaseResp;
import com.tencent.mm.sdk.modelmsg.SendAuth;
import com.tencent.mm.sdk.openapi.IWXAPI;
import com.tencent.mm.sdk.openapi.IWXAPIEventHandler;
import com.tencent.mm.sdk.openapi.WXAPIFactory;
import com.v1.video.Constant;
import com.v1.video.activity.SettingLoginActivity;
import com.v1.video.util.Logger;

/** 微信客户端回调activity示例 */
public class WXEntryActivity extends Activity implements IWXAPIEventHandler {

	public final String TAG = "WXEntryActivity";
//	/**
//	 * 处理微信发出的向第三方应用请求app message
//	 * <p>
//	 * 在微信客户端中的聊天页面有“添加工具”，可以将本应用的图标添加到其中 此后点击图标，下面的代码会被执行。Demo仅仅只是打开自己而已，但你可
//	 * 做点其他的事情，包括根本不打开任何页面
//	 */
//	public void onGetMessageFromWXReq(WXMediaMessage msg) {
//		Toast.makeText(WXEntryActivity.this, "onGetMessageFromWXReq", 1).show();
//	}

//	/**
//	 * 处理微信向第三方应用发起的消息
//	 * <p>
//	 * 此处用来接收从微信发送过来的消息，比方说本demo在wechatpage里面分享
//	 * 应用时可以不分享应用文件，而分享一段应用的自定义信息。接受方的微信 客户端会通过这个方法，将这个信息发送回接收方手机上的本demo中，当作 回调。
//	 * <p>
//	 * 本Demo只是将信息展示出来，但你可做点其他的事情，而不仅仅只是Toast
//	 */
//	public void onShowMessageFromWXReq(WXMediaMessage msg) {
//		if (msg != null && msg.mediaObject != null
//				&& (msg.mediaObject instanceof WXAppExtendObject)) {
//			WXAppExtendObject obj = (WXAppExtendObject) msg.mediaObject;
//			Logger.i("weixin", "shuju =" + obj.extInfo);
//			Toast.makeText(this, obj.extInfo, Toast.LENGTH_SHORT).show();
//		}
//
//		Toast.makeText(WXEntryActivity.this, "onShowMessageFromWXReq", 1)
//				.show();
//	}

	private IWXAPI api;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		api = WXAPIFactory.createWXAPI(this, Constant.APP_ID, false);
		api.registerApp(Constant.APP_ID);    	
		api.handleIntent(getIntent(), this);
//		Logger.i("weixin", "onCreate了");
//		Toast.makeText(this, "me_onCreate", Toast.LENGTH_LONG).show();
	}

	@Override
	protected void onNewIntent(Intent intent) {
		super.onNewIntent(intent);
		Logger.i("weixin", "onNewIntent了");
//		api = WXAPIFactory.createWXAPI(this, Constant.APP_ID, false);
		setIntent(intent);
		api.handleIntent(intent, this);
//		Toast.makeText(this, "me_onNewIntent", Toast.LENGTH_LONG).show();
	}

	public void onReq(BaseReq req) {
		Logger.i("weixin", "微信onReq111111111了");
		switch (req.getType()) {
		case ConstantsAPI.COMMAND_GETMESSAGE_FROM_WX:
			// goToGetMsg();
			break;
		case ConstantsAPI.COMMAND_SHOWMESSAGE_FROM_WX:
			// goToShowMsg((ShowMessageFromWX.Req) req);
			break;
		default:
			break;			
		}
//		Toast.makeText(this, "me_onReq", Toast.LENGTH_LONG).show();
	}
//	filter.addAction("com.v1.video.share.success_share");//成功
//    filter.addAction("com.v1.video.share.cancel_share");//取消
//    filter.addAction("com.v1.video.share.deny_share");//被拒绝
//    filter.addAction("com.v1.video.share.unknown_share");//未知
//    filter.addDataScheme("package");
	public void onResp(BaseResp resp) {
//		int result = 0;
//		Logger.i("weixin", "微信onResp了");
//		Log.i("weixin", "微信onResp了");
		switch (resp.errCode) {
		case BaseResp.ErrCode.ERR_OK:
//			Intent mIntent = new Intent(Constant.SHARE_SUCCESS_SHARE);			
//			Toast.makeText(this, "resp.toString()=="+resp.toString(), Toast.LENGTH_LONG).show();
//            WXEntryActivity.this.sendBroadcast(mIntent);  
////			result = R.string.errcode_success;
			Logger.i(TAG, "resp.toString()=="+resp.toString());
			if(Constant.isShare){
				Constant.listenerShare.processOfShare(WXEntryActivity.this,0);
			}else if(Constant.isLogin){
				String token = ((SendAuth.Resp) resp).code;
				if(SettingLoginActivity.loginActivity != null){
					SettingLoginActivity.loginActivity.LoginProcessWeixin(0, token);
				}
			}
			break;
		case BaseResp.ErrCode.ERR_USER_CANCEL:
//			result = R.string.errcode_cancel;  
			if(Constant.isShare){
				Constant.listenerShare.processOfShare(WXEntryActivity.this,1);
			}else if(Constant.isLogin){
				if(SettingLoginActivity.loginActivity != null){
					SettingLoginActivity.loginActivity.LoginProcessWeixin(1, "");
				}
				Toast.makeText(this, "授权已取消", Toast.LENGTH_LONG).show();
				
			}
			break;
		case BaseResp.ErrCode.ERR_AUTH_DENIED:
//			result = R.string.errcode_deny;
			if(Constant.isShare){
				Constant.listenerShare.processOfShare(WXEntryActivity.this,2);
			}else if(Constant.isLogin){
				if(SettingLoginActivity.loginActivity != null){
					SettingLoginActivity.loginActivity.LoginProcessWeixin(2, "");
				}
				Toast.makeText(this, "授权已拒绝", Toast.LENGTH_LONG).show();
			}
			break;
		default: 
//			result = R.string.errcode_unknown;
			if(Constant.isShare){
				Constant.listenerShare.processOfShare(WXEntryActivity.this,0);
			}else if(Constant.isLogin){
				if(SettingLoginActivity.loginActivity != null){
					SettingLoginActivity.loginActivity.LoginProcessWeixin(2, "");
				}
				Toast.makeText(this, "授权失败", Toast.LENGTH_LONG).show();
			}
			break;
		}		
//		Toast.makeText(this, result+"me", Toast.LENGTH_LONG).show();
		finish();
	}

}
